package cn.han.collection;

import java.util.*;

public class TestMap {

    public static void main(String[] args) {
        //1.创建Map对象
        Map<Integer,String> map = new HashMap<>();
        //2.向集合中存入数据
        map.put(9527,"白骨精");
        map.put(9528,"黑熊精");
        map.put(9529,"鲤鱼精");
        map.put(9530,"黄毛怪");
        map.put(9531,"黑熊精");
        map.put(9527,"女儿国国王");
/*map中存放的都是无序的数据
* map中的value可以重复
* map中的key不可以重复*/
//        System.out.println(map.clear(););
        System.out.println(map.hashCode());
        System.out.println(map.equals("黄毛怪"));
        System.out.println(map.isEmpty());
        System.out.println(map.size());
        System.out.println(map.containsKey(9527));//判断集合是否包含指定的key
        System.out.println(map.containsValue("黑熊精"));//判断集合是否包含指定的value
        System.out.println(map.get(9527));
        System.out.println(map.remove(9527));
        Collection<String> values = map.values();//取出所有value
        System.out.println(values);
        System.out.println(map.keySet());//取出所有key


        //迭代
        /*想要迭代map中的数据，但是map本身没有迭代器，所以需要先转换成Set集合
        * Set<Key>：把map中的所有的Key值存入到set集合中，用到的方法：Keyset()
        * */
        Set<Integer> keySet = map.keySet();
        Iterator<Integer> iterator = keySet.iterator();
        while (iterator.hasNext()){
            Integer key = iterator.next();
            String value = map.get(key);
        }
        Set<Map.Entry<Integer,String >> entry = map.entrySet();
        Iterator<Map.Entry<Integer,String >> it = entry.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }




    }
}
